iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0

Bug

在 debug 之前我們要知道什麼是 bug。

請勾選屬於 bug 的東西:

  • [ ] 正常網站換頁不應該換網址吧?
  • [ ] 這邊要請你幫我想一下 => 跟我想得不太一樣
  • [ ] 沒有按照設計稿做
  • [ ] 這個功能很常見怎麼沒有?

以上都不叫做 bug,你才有 bug!

Hint:

  • 程式碼的錯誤 => Bug
  • 操作失敗(但程式碼是正確的)=> Error

歡迎交流一下你被寫過的 bug。

Debug 的方法

不是所有人都能在腦中寫出完美的程式碼,多數的開發者也沒辦法一眼看出是哪裡寫錯、寫錯什麼。

我們需要一些工具幫助我們檢查有可能出錯的地方。

1.印出來看看

「印出來看看」應該是所有程式語言共通的 debug 方法。

PHP 印出來的方法有很多種:

  • echo
  • print_r()
  • dump()
  • dd()

在除錯時是要使用 ddd() 這種方便閱讀、能印出資訊的輔助函式。

https://laraveldaily.com/echoing-dd-vs-var_dump-vs-print_r/

印出來看看 debug 法其實也足夠應付大部分的除錯需求。

2.Debug Tool

ddd() 其實已經能夠印出 query、log 等等,但使用 Debug Tool 這樣的監控面板,我們就不需要主動下斷點來除錯。

Laravel Debugbar

老牌的 Debug Tool

Telescope

Laravel 官方推薦的擴展工具,db query 似乎有比 Debugbar 更多細節。

Ray
要付費,沒研究。

PHPStorm + Xdebug
太難裝,沒研究。

bonus

寫完這篇文後看到這個古早 debug 法,隨手記下來。

古早 debug 法

在想除錯的頁面開啟錯誤提示

ini_set('display_errors', 1);
error_reporting(E_ALL);

上一篇
10. CI x Github Action
下一篇
12. Error x Error Handling x Exception
系列文
每天一篇文章30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言